package day21;
//创建一个简单的银行账户管理系统，该系统包含一个BankAccount类，该类具有以下功能：
//存款：允许用户向账户中存入一定金额。
//取款：允许用户从账户中取出一定金额。
//获取余额：返回账户当前的余额。
//在实现这些功能时，你需要处理以下异常情况：
//如果用户尝试存入负数金额，应该抛出一个金额为负数的异常
//如果用户尝试取出超过账户余额的金额，应该抛出一个超出余额的异常
public class Demo2 {
    public static void main(String[] args) {
        BankAccount ba=new BankAccount();
        ba.addMoney(-1000);
        ba.minusMoney(1000);
        ba.checkMoney();
    }
}

class BankAccount{
    double account;
    public void addMoney(double money){
        if (money>0){
            account+=money;
            System.out.println("存款"+money+"成功，余额："+account);
        }else {
            try {
                 throw new NegativeMoneyException("存款金额不能为负数");
            }catch (NegativeMoneyException e){
                System.err.println(e.getMessage());
            }
        }
    }

    public void minusMoney(double money){
         if (money<account){
             account-=money;
             System.out.println("取款"+money+"成功，余额："+account);
         }else {
             try{
                 throw new LessMoneyException("余额不足！");
             } catch (LessMoneyException e) {
                 System.err.println(e.getMessage());
             }
         }
    }

    public void checkMoney(){
         System.out.println("余额为："+account);
    }
}

class NegativeMoneyException extends RuntimeException{
    public NegativeMoneyException(String msg){
        super(msg);
    }
}
class LessMoneyException extends RuntimeException{
    public LessMoneyException(String msg){
        super(msg);
    }
}